The present invention relates to a multi-processor system and an inter-processor communication method therefor, more particularly, to a multi-processor system for supporting a multicasting communication to transfer the same data from one processor to a plurality of processors, in a system in which the plurality of processors are connected by an inter-processor network and an inter-multi-processor communication method therefor.
In a conventional multi-processor system having a plurality of processors connected to each other, each processor comprises a CPU (central processing unit), a memory, a receiver and a transmitter. Each of the plurality of processors perform a communication through a network mutually connecting them.
A multicasting communication for transferring the same data from one processor to the designated processors has been frequently used in a parallel program. For an inter-processor network supporting the multicasting communication, various kinds of inter-processor networks have been known. For example, a switch in the inter-processor network generates a copy for one packet supplied from an input port and outputs it to a plurality of output ports. Thus, the same packet will be sent to a plurality of destination processors.
In the multicasting communication, the data is transferred to the specified processor that is previously designated, unlike a broadcast to transfer the data to all of the processors. Consequently, when the multicasting communication is performed, the destination processor must be designated.
In the packet for the multicasting communication, the destination processor can be represented as a range of the processor number expressed by the upper and lower limits. Furthermore, all of paths leading to the destination processors, for example, can be displayed on the packet. In addition, there is also an example that using a bit array corresponding to each processor, the destination processor is designated by asserting only bits corresponding to the destination processor.
On the other hand, there is the following method for a destination address in each destination processor. For example, the same address is used for each processor and only one address is designated. As another example, an area for a message buffer is provided in each processor, and the data by the multicasting is stored in this message buffer for a while.
However, in each processor, the same data is not always reserved in the same address. Particularly, addresses of the data dynamically reserved are known only in an execution time, because the addresses are determined by status of the processor. Furthermore, in the case where the message buffer is used, the data can be transferred to different addresses. However, it is necessary to copy the data from the message buffer into the destined data area. Since the copy requires the processing by a CPU, a high-speed receiving processing cannot be performed.